Several tools are available to assist in developing application programs for Mwave multimedia projects. These development tools are packaged in various configurations.

The Mwave system helps integrate multimedia functions into application programs by providing easy access to the Mwave DSP technology in the form of high-level APIs. These APIs are implemented in Windows or OS/2 device drivers and can be used to enhance popular software applications such as word processors, spreadsheets, and presentation graphics. Currently these APIs are for audio, FAX, data modem, and telephone answering machine capabilities.

Mwave development tools also allow the ISV or OEM customer to develop their own signal processing functions. These tools include a C compiler, assembler, linker, and real-time debugger for Mwave task development, as well as published Device Driver APIs with examples for corresponding device driver development.

The tools consist of the following:

Tool or Item
Description
Mwave DSP code development
Mwave Utilites
  • Mwave/OS query ù enables the programmer to query Mwave hardware and DSP task information
  • Mwave/OS monitor ù monitors errors detected by Mwave/OS
  • Mwave Datamover Services
    • Mwave Datamover API ù provides a standard interface formoving data streams between the PC and the Mwave DSP
    • Mwave Datamover API Reference
  • Mwave external I/O services (MEIO)
    • MEIO status ù utility program that enables the programmer to query and change connections between Mwave BIOS tasks and external I/O hardware on an Mwave adapter card
    • Mwave External I/O API ù enables the programmer to manage Mwave hardware connections
    • MEIO ProgrammerÆs Guide
    • MEIO command line interface ù enables the programmer to change MEIO connections from the command window in the Mwave debugger
    Mwave device driver development tools
    • Mwave Manager ProgrammerÆs Guide
    • Describes the API for the Mwave manager. The functions described enable the programmer to load and activate DSP tasks, connect or disconnect tasks, free tasks, and query DSP resources.

    Application development information and examples Contains documentation and application examples that illustrate how to develop Mwave-compatible Windows 3.1 and OS/2 applications, including:
    • Mwave Application DeveloperÆs Guide ù describes the features and functions of the MCI-compliant Mwave APIs.
    • Application examples ù sample applications for audio, FAX, and TAM, complete with source, that illustrate how to use the API to access the Mwave application drivers and the multimedia features of the Mwave hardware.

     

    Mwave DSP Code Development Tools

    The Mwave DSP task development system contains a set of tools tailored to real-time DSP software applications for the Mwave system. The Mwave task development system enhances productivity with powerful tools that make it easier to prototype, debug, port, test, and optimize Mwave tasks.

    Tools available include a powerful real-time debugger, ANSI C compiler, assembler, linker, librarian, and support libraries.

    The debugger allows easy access to program variables and signals while tasks are executing. It can accurately capture, inject, and plot live and recorded signals onthe screen in real time.

    The C compiler enables you to program in ANSI-standard C language. Code is easier to prototype, debug, and port from other platforms when written in C. An Mwave task can be written entirely in C. Time-critical algorithms can be coded in in-line Mwave DSP assembler language for maximum productivity and efficiency.

    The development system includes the ANSI standard function library and a DSP application function library that contains commonly used signal processing oper-ations. These functions can be used from programs written in either C language or assembler language.

     

    Mwave Assembler

    The Mwave assembler converts assembler language into machine code. The assembler uses an infix assembly style to code simplex and complex instructions.

     

    Mwave C Compiler

    The Mwave C compiler easily codes algorithms for Mwave systems. Code can quickly be generated in C and debugged, allowing rapid prototyping. The C compiler can output assembler language source or an object file.

    The C compiler supports two forms of in-line extensions that enable you to include Mwave DSP assembler language in your C source files.

    The Mwave library comprises functions that are common to many digital signal processing applications: vector, matrix, statistical, filters, and transform operations.

     

    Mwave DSP Linker and Librarian

    The Mwave task development system includes a linker and a librarian. The librarian provides a means of collecting modules together in a library. The linker processes object modules, either from individual files or from a librarian, to create a load module.

     

    Mwave Debugger

    The Mwave debugger operates together with the Mwave operating system(Mwave/OS), which supports processing of multiple real-time Mwave tasks. Mwave/OS enables the debugger to debug in a multitasking environment. The Mwave debugger requires no additional hardware with the standard Mwave system.

    The debugger can load, query the status, and change the execution state of multiple tasks in a single debugger session. Within the symbol context of a task, the debugger can display local variables, show a call trace, and set breakpoints and probes. When a breakpoint within one task is executed, other tasks can continue to execute. Breakpoints can stop only the specific task that is being debugged, orthe entire Mwave DSP.

    Real-time Debugging Support

    The debugger uses the Mwave manager and Mwave DSP interfaces to provide conditional breakpoint, data snapshot, capture, and injection. Through the DMA transfer facility between the Mwave processor and the host PC, the debugger efficiently and reliably moves data between the Mwave system and PC memory.

    The debugger affords a variety of methods of examining task variables, both when a task is stopped at a breakpoint and when the task is running. The real-time conditional breakpoint feature of the debugger provides powerful assistance in evaluating a taskÆs halt condition in real time as part of the task execution. If the halt condition is true, the task is stopped, and the breakpoint is processed as if it were a traditional breakpoint. If the halt condition is false, the breakpoint will continue the task execution in real time. The processing of a conditional breakpoint requires only a few extra Mwave processor cycles. Therefore, conditional breakpoints can be used without significantly affecting the real-time nature of the task as long as the halt condition is false.

    User Interface

    The debugger provides a flexible user interface that makes use of both a graphical (menu and dialog box) interface and a traditional command line language. The menu and dialog interface is easy for new and infrequent users to learn and use. The command line language provides expert users with fast access to functions and powerful script file capabilities.

    Some debugger features are:

    Breakpoints

    Breakpoints stop the execution of a single task. The remaining tasks in the system can continue to execute normally. Conditional breakpoints can be triggered by testing a halt condition.

    Capture and Injection Probes

    A specialized breakpoint that collects or inserts Mwave task signal data instead of stopping the program. The data is captured or injected at a particular point of execution in the task and then allows the task to resume normally.

    Signal Display

    The Mwave debugger can render digital signals graphically as multicolor screen plots. Up to 32 scopes (a rectangular region within a debugger window) can be defined.

    Performance Monitoring

    The debugger can measure the number of cycles executed in a particular task between two points of execution. Because the task is being executed repeatedly in most circumstances, the debugger displays the minimum, maximum, and most recent count.

    Single Step

    The debugger can step over an instruction or a source line. You can direct the debugger to step into or over function calls.

    View and Modify Data

    All C data types, including structures, can be displayed. The debugger can evaluate C code and display expressions.

     

    Data Mover Services

    Because multimedia involves moving vast amounts of information very quickly, multimedia systems require an enormous amount of data streaming capability. For interacting with the Mwave DSP, data movement tasks have been written to provide generic support for direct memory access from PC data space to Mwave DSP data space and vice versa. This solves part of the problem for Windows programs. No generic set of services for Windows offers the speed and power required for multimedia systems to stream data in and out of the Mwave DSP, and isolate these systems from the complexities of interacting with Mwave DSP data movement tasks.

    The Data Mover Services isolate programs from the complexities of data movement to and from the Mwave DSP by providing a fast and reliable interface with datamover tasks in the Mwave DSP.

    Applications needing real-time data movement to or from the Mwave DSP can use the Data Mover Services. They offer programs all the function of the data movement tasks without the complexities of interacting with the Mwave DSP directly. If effect, these services allow a program to say, ôWrite this to or read this from the DSP, and donÆt bother me about how you are going to do it.ö